# -*- coding: utf-8 -*-
"""
@Time ： 2023/10/23 12:26
@Auth ： y.h
@File ：test_001.py
@IDE ：PyCharm
@Motto：The sooner you start to code, the longer the program will take. —— Roy Carlson
"""
import openpyxl as op
import time
import pandas as pd



def main():
    start_time = time.time()

    root = r'C:\Users\31951\Desktop\小组五_Python编程竞赛_最终代码\数据文件夹\技能大赛Python决赛数据集.xlsx'
    report = op.load_workbook(root, data_only=True)
    df_page_2 = pd.read_excel(root, sheet_name='价格清单')

    page_1 = report['BOM清单']
    page_3 = report['生产计划']
    page_4 = report['题目']

    车型总数 = {}
    for row in page_3.iter_rows(min_row=2, values_only=True):
        车型数量 = row[2]
        车型 = row[0]
        if 车型 in 车型总数:
            车型总数[车型] += 车型数量
        else:
            车型总数[车型] = 车型数量

    df_price = df_page_2.groupby('零件编号')['零件价格'].min().reset_index()
    result = df_price.set_index('零件编号')['零件价格'].to_dict()

    总汽车价格 = 0
    for n in range(6, 24):
        汽车价格 = 0
        for m in range(3, 20003):
            if page_1.cell(m, 4).value == "外购":
                数据 = page_1.cell(m, n).value
                价格 = result.get(page_1.cell(m, 5).value)
                台数 = 车型总数.get(page_1.cell(2, n).value)
                if 价格 is not None and 台数 is not None:
                    汽车价格 += 数据 * 价格 * 台数

        总汽车价格 += 汽车价格

    page_4.cell(14, 5).value = 总汽车价格

    end_time = time.time()
    print(end_time - start_time)

    report.save(root)


if __name__ == '__main__':
    main()


